//引入store
import { default as store } from '@/store'
//引入router
import router from '@/router'
// 未登录用户白名单
let result = ['/trade', '/pay', '/paysuccess', '/center/myOrder', '/center/teamorder']


// 全局首位  to:到哪去  from:从哪来  nex(去哪里)t:放行
router.beforeEach(async (to, from, next) => {
    // 获取当前token 和 nickName
    let token = store.state.user.token
    let nickName = store.state.user.nickName
    // 当前用户已登录
    if (token) {
        // 如果已经登陆,就不可以去login,直接跳转首页
        if (to.path === '/login') {
            next('/home')
        } else {
            // 其余人全部放行
            try {
                // 统一派发请求,获取当前用户信息
                await store.dispatch('getUserInfo')
                next()
            } catch (e) {
                await store.dispatch('getLogout');

                // 捕捉错误,可能是用户token过期,跳转login重新登录获取token
                next('/login')
            }
        }
    } else {
        // 用户未登录,全部放行
        if (result.includes(to.path)) {
            // 未登录且出现在了白名单里,跳转登录页先登录,将当前想去的路由地址以字符串格式保存在url
            next({ path: '/login', query: { redirect: to.path } })
        } else {
            next()
        }
        // next()
    }
})
